package ca.uvic.group2.api;

import ca.uvic.group2.api.exceptions.*;
import java.rmi.Remote;
import java.rmi.RemoteException;
import java.io.IOException;
import java.util.ArrayList;
import ca.uvic.group2.server.RemoteServer;

public interface ServerManager extends Remote {

    public final int TRANSACTION_SERVER = 0;
    public final int DB_SERVER = 1;
    public final int QUOTE_SERVER = 2;
    public final int AUDIT_LOG = 3;


    String registerServer(RemoteServer server, int kind) throws RemoteException, CommException;
    void unregisterServer(RemoteServer server) throws RemoteException, CommException;
    void unregisterAllServers() throws RemoteException;

    void registerSession(long sessionId, String serverId) throws RemoteException, SessionNotFoundException;
    void unregisterSession(long sessionId, String serverId) throws RemoteException, SessionNotFoundException;
}
